/*
  分类模块
*/
const express = require('express')
const path = require('path')
const db = require(path.join(__dirname, '../common/db.js'))
const router = express.Router()

// 获取分类列表
router.get('/article/cates', async (req, res) => {
  // 1、操作数据库
  let sql = 'select * from cate where is_delete = 1'
  let ret = await db.operateDb(sql)
  // 2、返回结果
  if (ret.length > 0) {
    res.json({
      status: 0,
      message: '获取分类成功',
      data: ret
    })
  } else {
    res.json({
      status: 1,
      message: '获取分类失败'
    })
  }
})

// 添加分类
router.post('/article/addcates', async (req, res) => {
  // 1、获取参数
  let params = req.body
  params.is_delete = 1
  // 2、操作数据库
  let sql = 'insert into cate set ?'
  let ret = await db.operateDb(sql, params)
  // 3、返回状态
  if (ret.affectedRows > 0) {
    res.json({
      status: 0,
      message: '添加分类成功'
    })
  } else {
    res.json({
      status: 1,
      message: '添加分类失败'
    })
  }
})

// 删除分类
router.get('/article/deletecate/:id', async (req, res) => {
  // 1、获取请求参数
  let id = req.params.id
  // 2、操作数据库
  // 物理删除
  // let sql = 'delete from cate where Id = ?'
  // 逻辑删除(容易恢复回来对应数据)
  let sql = 'update cate set is_delete = 2 where Id = ?'
  let ret = await db.operateDb(sql, id)
  // 3、返回状态
  if (ret.affectedRows > 0) {
    res.json({
      status: 0,
      message: '删除分类成功'
    })
  } else {
    res.json({
      status: 1,
      message: '删除分类失败'
    })
  }
})

// 根据id查询分类信息
router.get('/article/cates/:id', async (req, res) => {
  // 1、获取参数
  let id = req.params.id
  // 2、操作数据库
  let sql = 'select id, name, alias from cate where Id = ?'
  let ret = await db.operateDb(sql, id)
  // 3、返回结果
  if (ret.length > 0) {
    res.json({
      status: 0,
      message: '查询分类成功',
      data: ret[0]
    })
  } else {
    res.json({
      status: 1,
      message: '查询分类失败'
    })
  }
})

// 更新分类提交表单接口
router.post ('/article/updatecate', async (req, res) => {
  // 1、获取参数
  let params = req.body
  // 2、操作数据库
  let sql = 'update cate set ? where is_delete = 1 and Id = ?'
  let ret = await db.operateDb(sql, [{
    name: params.name,
    alias: params.alias
  }, params.Id])
  // 3、返回状态
  if (ret.affectedRows > 0) {
    res.json({
      status: 0,
      message: '更新分类成功'
    })
  } else {
    res.json({
      status: 1,
      message: '更新分类失败'
    })
  }
})

module.exports = router